﻿// 哥德巴赫猜想.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//


/*
http://ybt.ssoier.cn:8088/problem_show.php?pid=1157


哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和。编程将6～100所有偶数表示成两个素数之和。

【输入】
(无）

【输出】
分行输出：

例如:

6=3+3

8=3+5

...

（每个数只拆开一次，请保证第一个加数最小）

【输入样例】
（无）
【输出样例】
（无）
*/



#include <iostream>


using namespace std;

int primes[] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 };

void solve(int x) {
	int len = sizeof(primes) / sizeof(primes[0]);
	for (int i = 0; i < len; i++) {
		if (primes[i] < x) {
			int find = x - primes[i];
			int idx = lower_bound(primes, primes + len, find) - primes;
			if (find == primes[idx]) {
				cout << x << "=" << primes[i] << "+" << primes[idx] << endl;
				break;
			}
		}
	}
	return;
}

int main()
{
	for (int i = 6; i <= 100; i+=2) {
		solve(i);
	}

	return 0;
}

